class TimeBomb {
  constructor(name) {
    this.timerId = null; // 用于存储定时器的标识符  
    this.#name = name
  }

  // 启动定时器，3秒后爆炸  
  start() {
    //if (this.timerId !== null) {
    //  console.log('炸弹已经在计时中，无法再次启动！');
    //  return;
    //}

    console.log(this.#name + '炸弹已启动，3秒后爆炸！');

    this.timerId = setTimeout(() => {
      console.log(this.#name + '炸弹爆炸了！');
    }, 3000);
  }

  // 取消定时器  
  clear() {
    if (this.timerId !== null) {
      clearTimeout(this.timerId);
      console.log(this.#name + '炸弹已取消！');
      this.timerId = null;
    } else {
      console.log('炸弹未启动或已被取消！');
    }
  }

  #name = ''
}

// 实例化两个定时炸弹对象  
const b1 = new TimeBomb('b1');
const b2 = new TimeBomb('b2');

// b1 调用 start 方法  
b1.start();

// b2 调用 start 方法  
b2.start();

// b2 在 1 秒钟之后，调用 clear 方法  
setTimeout(() => {
  b2.clear(b2);
}, 1000);